﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using hou_elearning.Business;
using hou_elearning.Entity;
using hou_elearning.Custom;
using System.Data;

public partial class Controls_ucChitietkhoahoc : System.Web.UI.UserControl
{
    public Int64 PK_iKhoahocID = 0;
    public Int32 PK_iNguoidungID = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        if(Request.QueryString["id"] != null)
        {
            try
            {
                Session["KhoahocID"] = Int64.Parse(Request.QueryString["id"]);
            }
            catch
            {

            }
        }
        if(!IsPostBack)
        {
            napThongtinkhoahoc();
            //checkDangkykhoahoc();
        }
    }

    /// <summary>
    /// Lấy ID người dùng đăng nhập
    /// </summary>
    /// <author>liemqv</author>
    /// <create>25/04/2010</create>
    /// 

    public Int32 iGetUserLogin()
    {
        Int32 PK_iNguoidungID = 0;
        try
        {
            if (Session["UserID"] != null)
            {
                PK_iNguoidungID = Int32.Parse(Session["UserID"].ToString());
            }
        }
        catch (Exception ex)
        {
            Response.Redirect("~/Admin/Login.aspx?re=Chitietkhoahoc");
        }
        return PK_iNguoidungID;
    }

    /// <summary>
    /// Lấy ID của khóa học đã chọn
    /// </summary>
    /// <author>liemqv</author>
    /// <create>29/05/2010</create>
    /// 

    public Int64 iGetPK_iKhoahocID()
    {
        Int64 iRes = 0;
        try
        {
            if (Session["KhoahocID"] != null)
            {
                iRes = Int64.Parse(Session["KhoahocID"].ToString());
            }
            else
            {
                Response.Redirect("~/?page=Danhsachkhoahoc");
            }
        }
        catch (Exception ex)
        {
            
        }
        return iRes;
    }

    /// <summary>
    /// Kiểm tra trạng thái đăng ký khóa học của người dùng đăng nhập
    /// </summary>
    /// <author>liemqv</author>
    /// <create>24/04/2012</create>
    /// 

    public void checkDangkykhoahoc()
    {
        PK_iNguoidungID = iGetUserLogin();
        if (PK_iNguoidungID > 0)
        {
            PK_iNguoidungID = iGetUserLogin();
            if(Khoahoc_HocvienBRL.GetByFK_iKhoahocIDAndFK_iHocvienID(PK_iKhoahocID, PK_iNguoidungID) != null)
            {
                lblTrangthaidangky.Text = "(Bạn đang học khóa học này)";
                btnDangky.Visible = false;
            }
            else
            {
                KhoahocEntity oKhoahoc = KhoahocBRL.GetOne(PK_iKhoahocID);
                if (oKhoahoc.iTrangthai == 1)
                {
                    lblTrangthaidangky.Text = "Khóa học này đã bắt đầu";
                    btnDangky.Visible = false;
                }
                DangkykhoahocEntity oDangky = DangkykhoahocBRL.GetByFK_iKhoahocIDAndFK_iHocvienID(PK_iKhoahocID, PK_iNguoidungID);
                if(oDangky != null)
                {
                    Session["PK_iDangkykhoahocID"] = oDangky.PK_iDangkykhoahocID;
                    lblTrangthaidangky.Text = "(Bạn đã đăng ký khóa học này)";
                    btnDangky.Visible = false;
                    btnHuydangky.Visible = true;
                }
            }
        }
    }



    /// <summary>
    /// Nạp thông tin khóa học
    /// </summary>
    /// <author>liemqv</author>
    /// <create>24/04/2012</create>
    public void napThongtinkhoahoc()
    {
        PK_iKhoahocID = iGetPK_iKhoahocID();
        KhoahocEntity oKhoahoc = KhoahocBRL.GetOne(PK_iKhoahocID);
        if(oKhoahoc != null)
        {
            int iSoluonghocvienDangky = DangkykhoahocBRL.GetByFK_iKhoahocID(oKhoahoc.PK_iKhoahocID).Count;
            iSoluonghocvienDangky += Khoahoc_HocvienBRL.GetByFK_iKhoahocID(PK_iKhoahocID).Count;
            lblMakhoahoc.Text = oKhoahoc.sKyhieu;
            lblTenkhoahoc.Text = oKhoahoc.sTenkhoahoc;
            lblSoluonghocvien.Text = iSoluonghocvienDangky + "/" + oKhoahoc.iSoluongdukien;
            if (oKhoahoc.FK_iGiangvienID > 0)
            {
                NguoidungEntity oNguoidung = NguoidungBRL.GetOne(oKhoahoc.FK_iGiangvienID);
                hplGiangvien.Text = oNguoidung.sHoten;
                hplGiangvien.NavigateUrl = ResolveUrl("~/?page=UserInfor&id=" + oNguoidung.PK_iNguoidungID);
            }
            divBody.InnerHtml = oKhoahoc.sGhichu;
            if(oKhoahoc.iTrangthai != 2)
            {
                PK_iNguoidungID = iGetUserLogin();
                if (PK_iNguoidungID > 0)
                {
                    if (Khoahoc_HocvienBRL.GetByFK_iKhoahocIDAndFK_iHocvienID(PK_iKhoahocID, PK_iNguoidungID) != null)
                    {
                        lblTrangthaidangky.Text = "(Bạn đang học khóa học này)";
                        btnDangky.Visible = false;
                        btnHuydangky.Visible = false;
                    }
                }
            }
            else
                if (oKhoahoc.iTrangthai == 2)
                {
                    lblTrangthaidangky.Text = "Khóa học đã kết thúc";
                    btnDangky.Visible = false;
                    btnHuydangky.Visible = false;
                }
                else
                //if (oKhoahoc.iTrangthai == 0)
                //{
                {
                    if (GlobalFunction.iSodangkyConlai(PK_iKhoahocID) <= 0)
                    {
                        lblTrangthaidangky.Text = "Khóa học này đã đủ học viên";
                        btnDangky.Visible = false;
                    }
                    else
                    {
                        PK_iNguoidungID = iGetUserLogin();
                        if (PK_iNguoidungID > 0)
                        {
                            DangkykhoahocEntity oDangkyKhoahoc = DangkykhoahocBRL.GetByFK_iKhoahocIDAndFK_iHocvienID(PK_iKhoahocID, PK_iNguoidungID);
                            if (oDangkyKhoahoc != null)
                            {
                                Session["PK_iDangkykhoahocID"] = oDangkyKhoahoc.PK_iDangkykhoahocID;
                                lblTrangthaidangky.Text = "Bạn đã đăng ký khóa học này";
                                btnDangky.Visible = false;
                                btnHuydangky.Visible = true;
                            }
                        }
                    }
                }
                    //}
        }
    }
    protected void btnDangky_Click(object sender, EventArgs e)
    {
        PK_iNguoidungID = iGetUserLogin();
        if(PK_iNguoidungID > 0)
        {
            if (Session["KhoahocID"] != null)
            {
                PK_iKhoahocID = Int64.Parse(Session["KhoahocID"].ToString());
                DangkykhoahocEntity oDangky = new DangkykhoahocEntity();
                oDangky.FK_iKhoahocID = PK_iKhoahocID;
                oDangky.FK_iHocvienID = PK_iNguoidungID;
                oDangky.iTrangthai = 0;
                oDangky.dNgaydangky = DateTime.Now;
                Int64 iNewDangkykhoahocID = 0;
                iNewDangkykhoahocID = DangkykhoahocBRL.Add(oDangky);
                if (iNewDangkykhoahocID > 0)
                {
                    Session["PK_iDangkykhoahocID"] = iNewDangkykhoahocID;
                    lblTrangthaidangky.Text = "Đăng ký thành công!";
                    btnDangky.Visible = false;
                    btnHuydangky.Visible = true;
                }
            }
        }
        else
        {
            Response.Redirect(ResolveUrl("~/Admin/Login.aspx"));
        }
        
    }
    protected void btnHuydangky_Click(object sender, EventArgs e)
    {
        PK_iNguoidungID = iGetUserLogin();
        if (PK_iNguoidungID > 0)
        {
            if (Session["PK_iDangkykhoahocID"] != null)
            {
                Int64 PK_iDangkykhoahocID = Int64.Parse(Session["PK_iDangkykhoahocID"].ToString());
                if (DangkykhoahocBRL.Remove(PK_iDangkykhoahocID) == true)
                {
                    lblTrangthaidangky.Text = "Hủy đăng ký thành công!";
                    btnDangky.Visible = true;
                    btnHuydangky.Visible = false;
                }
            }
        }
        else
        {
            Response.Redirect(ResolveUrl("~/Admin/Login.aspx"));
        }
    }
}